package com.ruoyi.wisdom.domain.swap;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Transient;

/**
 * 请假管理对象 swap_student_leave
 * 
 * @author ruoyi
 * @date 2024-12-31
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class SwapStudentLeave extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 单位ID */
    @Excel(name = "单位ID")
    @JsonProperty("com_id")
    private Long comId;

    /** 请假申请ID */
    @Excel(name = "请假申请ID")
    @JsonProperty("apply_id")
    private Long applyId;

    /** 关系ID */
    @Excel(name = "关系ID")
    @JsonProperty("relation_id")
    private Long relationId;

    /** 年级ID */
    @Excel(name = "年级ID")
    @JsonProperty("grade_id")
    private Long gradeId;

    /** 年级名称 */
    @Excel(name = "年级名称")
    @JsonProperty("grade_name")
    private String gradeName;

    /** 班级ID */
    @Excel(name = "班级ID")
    @JsonProperty("class_id")
    private Long classId;

    /** 班级名称 */
    @Excel(name = "班级名称")
    @JsonProperty("class_name")
    private String className;

    /** 学生ID */
    @Excel(name = "学生ID")
    @JsonProperty("student_id")
    private Long studentId;

    /** 学生姓名 */
    @Excel(name = "学生姓名")
    @JsonProperty("student_name")
    private String studentName;

    /** 开始时间 */
    @JsonProperty("start_time")
    private String startTime;

    /** 结束时间 */
    @JsonProperty("end_time")
    private String endTime;

    /** 请假原因 */
    @Excel(name = "请假原因")
    @JsonProperty("leave_reason")
    private String leaveReason;

    /** 请假类型 */
    @Excel(name = "请假类型")
    @JsonProperty("leave_type")
    private String leaveType;

    /** 是否返校：0否、1是。 */
    @Excel(name = "是否返校：0否、1是。")
    @JsonProperty("is_back")
    private Integer isBack;

    /** 数据来源：1OA、2旧版学生请假 */
    @Excel(name = "数据来源：1OA、2旧版学生请假")
    private Integer source;

    @Transient
    private String operate;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setComId(Long comId) 
    {
        this.comId = comId;
    }

    public Long getComId() 
    {
        return comId;
    }
    public void setApplyId(Long applyId) 
    {
        this.applyId = applyId;
    }

    public Long getApplyId() 
    {
        return applyId;
    }
    public void setRelationId(Long relationId) 
    {
        this.relationId = relationId;
    }

    public Long getRelationId() 
    {
        return relationId;
    }
    public void setGradeId(Long gradeId) 
    {
        this.gradeId = gradeId;
    }

    public Long getGradeId() 
    {
        return gradeId;
    }
    public void setGradeName(String gradeName) 
    {
        this.gradeName = gradeName;
    }

    public String getGradeName() 
    {
        return gradeName;
    }
    public void setClassId(Long classId) 
    {
        this.classId = classId;
    }

    public Long getClassId() 
    {
        return classId;
    }
    public void setClassName(String className) 
    {
        this.className = className;
    }

    public String getClassName() 
    {
        return className;
    }
    public void setStudentId(Long studentId) 
    {
        this.studentId = studentId;
    }

    public Long getStudentId() 
    {
        return studentId;
    }
    public void setStudentName(String studentName) 
    {
        this.studentName = studentName;
    }

    public String getStudentName() 
    {
        return studentName;
    }
    public void setStartTime(String startTime)
    {
        this.startTime = startTime;
    }

    public String getStartTime()
    {
        return startTime;
    }
    public void setEndTime(String endTime)
    {
        this.endTime = endTime;
    }

    public String getEndTime()
    {
        return endTime;
    }
    public void setLeaveReason(String leaveReason) 
    {
        this.leaveReason = leaveReason;
    }

    public String getLeaveReason() 
    {
        return leaveReason;
    }
    public void setLeaveType(String leaveType) 
    {
        this.leaveType = leaveType;
    }

    public String getLeaveType() 
    {
        return leaveType;
    }
    public void setIsBack(Integer isBack) 
    {
        this.isBack = isBack;
    }

    public Integer getIsBack() 
    {
        return isBack;
    }
    public void setSource(Integer source) 
    {
        this.source = source;
    }

    public Integer getSource() 
    {
        return source;
    }

    public void setOperate(String operate){ this.operate = operate; }
    public String getOperate(){ return operate; }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("comId", getComId())
            .append("applyId", getApplyId())
            .append("relationId", getRelationId())
            .append("gradeId", getGradeId())
            .append("gradeName", getGradeName())
            .append("classId", getClassId())
            .append("className", getClassName())
            .append("studentId", getStudentId())
            .append("studentName", getStudentName())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("leaveReason", getLeaveReason())
            .append("remark", getRemark())
            .append("leaveType", getLeaveType())
            .append("isBack", getIsBack())
            .append("source", getSource())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("operate", getOperate())
            .toString();
    }
}
